import {
	baseURL,
	requestTimeout,
	contentType,
	loadingText,
	tokenName,
	tokenTableName,
	langName
} from '@/config/index.js';
import Vue from 'vue'
const vm = new Vue()

const install = (Vue, vm) => {
	Vue.prototype.$u.http.setConfig({
		baseUrl: baseURL,
		showLoading: false,
		loadingText,
		loadingTime: requestTimeout,
		header: {
			'Content-Type': contentType,
			'x-client-type': 'GENERAL',
			'source': '2',
			'platform': 'wx',
		}
	});
	// 请求拦截部分，如配置，每次请求前都会执行
	Vue.prototype.$u.http.interceptor.request = (config) => {
		// 引用token
		const token = vm.$store.getters['app/token'] || uni.getStorageSync(tokenTableName);
		const storeId = 1
		if (token) {
			config.header[tokenName] = token;
		}
		if (storeId) {
			config.header.StoreId = storeId
		}
		return config;
	}
	// 响应拦截，如配置，每次请求结束都会执行本方法
	Vue.prototype.$u.http.interceptor.response = (res) => {
		if (res.code === 401) {
			vm.$u.toast("已下线,请重新登录")
			vm.$store.dispatch('app/signOut')
			uni.reLaunch({
				url: '/pages/login/login'
			})
		}
		return res;
	}
}

export default {
	install
}